<?php
    function vcode($width=120, $height=40, $fontSize=30, $countElement= 4, $countPixel=100, $countLine=4){

    //通知浏览器，这次发送的是图片不是文本
    header("Content-type:image/jpeg");  //默认情况是header("Content-type:text/html");
    
    $element = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
                     'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
                     '1', '2', '3', '4', '5', '6', '7', '8', '9');
    $string = '';
    for($i = 0; $i < $countElement; $i++){
         $string .= $element[rand(0, count($element)-1)];
    }
   
    // -----------创建图像--------------------------------
    $img = imagecreatetruecolor($width, $height);  //新建一个宽高200px的真彩图像
   
    // -----------绘制图像--------------------------------
    // $color_bg =  imagecolorallocate($img, 255, 200, 200);  //分配颜色
    $color_bg =  imagecolorallocate($img, rand(150, 255), rand(150, 255), rand(150, 255));  //随机分配颜色
    // $color_border =  imagecolorallocate($img, 0, 0, 0);  //边框颜色
    $color_pixel = imagecolorallocate($img, rand(100, 200), rand(100, 200), rand(100, 200));   //像素点颜色
    $color_string = imagecolorallocate($img, rand(10, 100), rand(10, 100), rand(10, 100));   //像素点颜色
    // ---------------------------------------------------
    imagefill($img, 0, 0, $color_bg);    //区域填充
    for($i = 0; $i < $countPixel; $i++){
        imagesetpixel($img, rand(1, $width-1), rand(1, $height-1), $color_pixel); //画一个像素点
    }
    for($i = 0; $i < $countLine; $i++){
        imageline($img, rand(0, $width/2), rand(0, $height/2), rand($width/2, $width-1), rand($height/2, $height-1), $color_pixel); //画一条线
    }
    imagettftext($img, $fontSize, rand(-5, 5), rand(5, 15), rand(30, 35), $color_string, 'D:/phpstudy_pro/WWW/bbs/style/font/ManyGifts.ttf', $string);  //用指定字体写入字符串
    // -----------输出图像--------------------------------
    imagejpeg($img);    //以JPEG格式将图像输出到浏览器或文件

    // -----------输出图像--------------------------------
    imagedestroy($img); //销毁图像

    return $string;
    }

    // vcode(100, 40, 30, 4);
?>
